package Day_0224.SpringAnnotation;

import org.springframework.beans.factory.annotation.Autowired;

/**
 * @author zxc
 * @date 2023/02/24 18:34
 **/
public class Annotation_Autowired {
    public static void main(String[] args) {
        /**
         * @Autowired 注解有什么作用
         * ===》
         * （1）@Autowired默认是按照类型（Type）装配注入的，默认情况下要求依赖对象必须存在（可以设置它required属性为false）。
         * （2）@Autowired 注解提供了更细粒度的控制，包括在何处以及如何完成自动装配。
         * （3）用法和@Required一样，修饰setter方法、构造器、属性或者具有任意名称和/或多个参数的PN方法。
         *
         */

        /**
         * @Autowired和@Resource之间的区别
         * ===》
         * 1.@Autowired 注解所能够修饰的 ：
         * （1）构造函数;
         * （2）成员变量;
         * （3）Setter方法;
         *
         * 2.@Autowired和@Resource之间的区别
         * （1）@Autowired默认是按照类型（Type）装配注入的，默认情况下它要求依赖对象必须存在（可以设置它required属性为false）。
         * （2）@Resource默认是按照名称（Name）来装配注入的，只有当找不到与名称（Name）匹配的bean，才会按照类型（Type）来装配注入。
         *
         */
    }
    public class Employee {
        private String name;
        @Autowired
        public void setName(String name) {
            this.name=name;
        }
        public String getName(){
            return name;
        }
    }
}
